package com.xjh.basestudy.designmode.behaviorMode.behaviorMode10_Observer.p1_origin;

/**
 * @Author XuJianHua
 * @Date 2022/10/6 21:13
 * @Description
 *
 * 买家的疯狂抢购活动一直在持续进行，然而商店一直处于无货状态，前三位买家挤破头也一无所获。“功夫不负有心人”，最后一位买家在第26行胜出，
 * 原因是此前商店在第24行刚好进货，此时造成的状态更新恰巧被最后一位买家观察到。
 *
 * 然而，故事发展到这里也许并没有结束，前三位买家或许依旧在继续他们的抢购行为，买家大量的精力被这种糟糕的软件设计耗费了。
 */
public class Client {

    public static void main(String[] args) {
        Shop shop = new Shop();
        Buyer shaSir = new Buyer("悟净", shop);
        Buyer baJee = new Buyer("八戒", shop);

        //八戒和悟净轮番抢购
        baJee.buy();// 八戒购买：无商品
        shaSir.buy();// 悟净购买：无商品
        baJee.buy();// 八戒购买：无商品
        shaSir.buy();// 悟净购买：无商品

        // 玄奘也加入了购买行列
        Buyer tangSir = new Buyer("玄奘", shop);
        tangSir.buy();// 玄奘购买：无商品

        // 师徒3人继续抢购
        baJee.buy();// 八戒购买：无商品
        shaSir.buy();// 悟净购买：无商品
        tangSir.buy();// 玄奘购买：无商品

        // 商店终于进货了，被悟空抢到了
        shop.setProduct("最新旗舰手机");
        Buyer wuKong = new Buyer("悟空", shop);
        wuKong.buy();// 悟空购买：最新旗舰手机

        // 此后抢购也许还在继续……
    }

}